package clases;

import java.awt.Component;
import java.awt.Container;
import javax.swing.JComboBox;
import javax.swing.JFormattedTextField;
import javax.swing.JPasswordField;
import javax.swing.JSpinner;
import javax.swing.JTextField;

/**
 *
 * @author Miguel Mosquera
 */
public class ClsValidacion {
    //______________________________________________________________:)Soy una Bara Espaciadora
    /** 
    * Verifica que los campos del Componente contenedores no estén vacíos.
    * @param elComponente Objeto contenedor, puede ser un JFrame u otros componentes similares.
    * @return <code>True:</code> Si los campos tienen valores.
    * @see http://programacion-x.blogspot.com/2009/04/tienecamposvasios-component-boolean.html
    **/
      public static boolean tieneCamposVacios( Component elComponente ){
            if( elComponente instanceof Container ){
                if( ((Container)elComponente).getComponents().length > 0 ) {
                    for (Component elem : ((Container)elComponente).getComponents()) {
                        if( tieneCamposVacios( elem ) ) {
                            return true;
                        }
                    }
                }
            }
            if( elComponente instanceof JTextField ){
                if( ((JTextField)elComponente).getText().trim().equals("") ){
                    ((JTextField)elComponente).requestFocus();
                    return true;
                }
            }else if(elComponente instanceof JComboBox){
                if (((JComboBox)elComponente).getSelectedIndex()==-1) {
                    ((JComboBox)elComponente).requestFocus();
                    return true;
                }
            }else if(elComponente instanceof JSpinner){
                if (Double.parseDouble(((JSpinner)elComponente).getValue().toString())<=0) {
                    ((JSpinner)elComponente).requestFocus();
                    return true;
                }
            }else if(elComponente instanceof JFormattedTextField){
                if( ((JFormattedTextField)elComponente).getValue().equals("") ){
                    ((JFormattedTextField)elComponente).requestFocus();
                    return true;
                }
            }else if(elComponente instanceof JPasswordField){
                if( ((JPasswordField)elComponente).getText().length()<=0 ){
                    ((JPasswordField)elComponente).requestFocus();
                    return true;
                }
            }
            return false;
      }
    //______________________________________________________________:)Soy una Barra Espaciadora
    
}
